package com.api.weavernorth.action.performance;



import net.sf.json.JSONObject;
import org.apache.commons.logging.Log;

import weaver.conn.RecordSet;
import weaver.general.Util;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

@Path("/weavernorth/action/performance/HandlerPerformance")
public class HandlerPerformance extends HttpServlet {
    private static Log log = org.apache.commons.logging.LogFactory.getLog(HandlerPerformance.class.getName());
    @GET
    @Path("/getDatas")
    @Produces(MediaType.TEXT_PLAIN)
    public String getDatas(@Context HttpServletRequest request, @Context HttpServletResponse response) {
        log.info("区域经理js带出值开始");
      RecordSet rsCRM = new RecordSet();
      RecordSet rsFwbz = new RecordSet();
      RecordSet rsClgl = new RecordSet();
      //存放返回值
      JSONObject jsonObject = new JSONObject();

      //获取前端js传入的区域经理姓名和分公司名称
      String  strMainCompany=request.getParameter("mainCompany");
      log.info("分公司值："+strMainCompany);
      String  strQyjlNames=request.getParameter("qyjlNames");
      log.info("区域经理值："+strQyjlNames);
      //对取到的区域经理字符串做处理
      //截取子串
      String strName = strQyjlNames.substring(0, strQyjlNames.length() - 1);
      //按照逗号分组
      String[] strNames = strName.split(",");

      //存放此区域经理下所有店长 CRM 会员销售占比/扫码招募占比 平均分
       int intAllScore=0;
      //存放此区域经理下所有店长 CRM 会员销售占比/扫码招募占比 总分
       int intScore = 0;
      //存放服务标准 服务标准执行 平均分
       int intFwbzAllA =0;
      //存放服务标准 服务标准执行 总分
       int intFwbzA=0;
      //存放服务标准 专业知识 平均分
       int intFwbzAllB =0;
      //存放服务标准 专业知识 总分
       int intFwbzB=0;
      //存放服务标准 店铺转训完成率 平均分
       int intFwbzAllC =0;
      //存放服务标准 店铺转训完成率 总分
       int intFwbzC=0;
      //存放陈列管理 陈列标准的执行 平均分
       int intClglAllA = 0;
      //存放陈列管理   陈列标准的执行 总分
       int intClglA = 0;
      //存放陈列管理 新品按标准露出 平均分
       int intClglAllB = 0;
      //存放陈列管理   新品按标准露出 总分
       int intClglB = 0;
      //存放陈列管理 日常陈列维护标准知识的员工掌握效果 平均分
       int intClglAllC = 0;
      //存放陈列管理   日常陈列维护标准知识的员工掌握效果 总分
       int intClglC = 0;

      for(int i = 1;i<strNames.length;i++){
          //CRM
          String strCRM = " select crm from formtable_main_192_dt1 d,formtable_main_192 f ,workflow_requestbase wr  where f.requestid = wr.requestid   and  f.id=d.mainid  and f.qyjl='"+strNames[i]+"' and  f.fgs = '"+strMainCompany+"'  and  wr.currentnodetype =3";
          log.info("查询店长CRM数据的sql:"+strCRM);
          rsCRM.executeQuery(strCRM);
          while(rsCRM.next()){
            String strAllScore = Util.null2String(rsCRM.getString("crm"));
            //类型转换
             int  intScores = Integer.parseInt(strAllScore);
            //计算总分
             intScore=intScores+intScore;
          }
          //计算CRM平均分
          intAllScore=intScore/strNames.length;
          log.info("CRM平均分:"+intAllScore);

          //服务标准流程
          String strFwbz = " select fwbzA,fwbzB,fwbzC from formtable_main_56_dt1 d,formtable_main_56 f ,workflow_requestbase wr  where f.requestid = wr.requestid   and  f.id=d.mainid  and f.qyjl='"+strNames[i]+"' and  f.fgs = '"+strMainCompany+"'  and  wr.currentnodetype =3";
          log.info("查询店长服务标准流程数据的sql:"+strFwbz);
          rsFwbz.executeQuery(strFwbz);
          while (rsFwbz.next()){
            //获取服务标准执行的值
            String strAScore  = Util.null2String(rsFwbz.getString("fwbzA"));
            //获取专业知识的值
            String strBScore  = Util.null2String(rsFwbz.getString("fwbzB"));
            //获取店铺转训完成率的值
            String strCScore  = Util.null2String(rsFwbz.getString("fwbzC"));
            //A类型转换
              int intFwbzAs=Integer.parseInt(strAScore);
            //A计算总分
              intFwbzA=intFwbzAs+intFwbzA;
            //B类型转换
              int intFwbzBs=Integer.parseInt(strBScore);
            //B计算总分
              intFwbzB=intFwbzBs+intFwbzB;
            //C类型转换
              int intFwbzCs=Integer.parseInt(strCScore);
            //计算总分
              intFwbzC=intFwbzCs+intFwbzC;
          }
          //计算服务标准平均分
          intFwbzAllA=intFwbzA/strNames.length;
          log.info("服务标准A："+intFwbzAllA);
          //计算专业知识平均分
          intFwbzAllB=intFwbzB/strNames.length;
          log.info("专业知识B："+intFwbzAllB);
          //计算店铺转训完成率的平均分
          intFwbzAllC=intFwbzC/strNames.length;
          log.info("店铺转训完成率C："+intFwbzAllC);

          //陈列管理流程
          String strClgl = " select clglA,clglB,clglC from formtable_main_57_dt1 d,formtable_main_57 f ,workflow_requestbase wr  where f.requestid = wr.requestid   and  f.id=d.mainid  and f.qyjl='"+strNames[i]+"' and  f.fgs = '"+strMainCompany+"'  and  wr.currentnodetype =3";
          log.info("查询店长服务标准流程数据的sql:"+strFwbz);
          rsClgl.executeQuery(strClgl);
          while(rsClgl.next()){
            //获取陈列标准的执行的值
              String strAScore =Util.null2String(rsClgl.getString("clglA"));
            //获取新品按标准露出的值
              String strBScore = Util.null2String(rsClgl.getString("clglB"));
            //获取日常陈列维护标准知识的员工掌握效果 的值
             String strCScore = Util.null2String(rsClgl.getString("clglC"));
             //A类型转换
              int intClglAs=Integer.parseInt(strAScore);
             //A计算总分
              intClglA=intClglAs+intClglA;
             //类型转换
              int intClglBs=Integer.parseInt(strBScore);
             //A计算总分
              intClglB=intClglBs+intClglB;
              //类型转换
              int intClglCs=Integer.parseInt(strCScore);
              //A计算总分
              intClglC=intClglCs+intClglC;



          }
          //计算陈列标准的执行平均分
          intClglAllA=intClglA/strNames.length;
          log.info("陈列标准的执行A："+intClglAllA);
          //计算新品按标准露出平均分
          intClglAllB=intClglB/strNames.length;
          log.info("新品按标准露出B："+intClglAllB);
          //计算日常陈列维护标准知识的员工掌握效果平均分
          intClglAllC=intClglC/strNames.length;
          log.info("日常陈列维护标准知识的员工掌握效果C："+intClglAllC);

      }
      //将值放到返回的json中
        jsonObject.put("CRMALLScore",intAllScore);
        jsonObject.put("FwbzA",intFwbzAllA);
        jsonObject.put("FwbzB",intFwbzAllB);
        jsonObject.put("FwbzC",intFwbzAllC);
        jsonObject.put("ClglA",intClglAllA);
        jsonObject.put("ClglB",intClglAllB);
        jsonObject.put("ClglC",intClglAllC);





      return jsonObject.toString();
    }

}
